package cn.dubito.springboot.learning.service;

import cn.dubito.springboot.learning.dataobject.ProductInfo;
import cn.dubito.springboot.learning.dto.CartDTO;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import java.util.List;

/**
 * @author liliang
 * @description:
 * @date 2018/1/9.
 */
public interface ProductService {

    /**
     * 根据 ID 查找商品
     * @param productId
     * @return
     */
    ProductInfo findOne(String productId);

    /**
     * 查询所有商品列表
     * @return
     */
    List<ProductInfo> findUpAll();

    /**
     * 分页查找商品列表
     * @param pageable
     * @return
     */
    Page<ProductInfo> findByPage(Pageable pageable);

    /**
     * 保存商品
     * @param productInfo
     * @return
     */
    ProductInfo save(ProductInfo productInfo);

    /**
     * 添加库存
     * @param cartDTOList
     */
    void increaseStock(List<CartDTO> cartDTOList);

    /**
     * 减去库存
     * @param cartDTOList
     */
    void decreaseStock(List<CartDTO> cartDTOList);
}
